package com.zw.a.basic.a05.demo03_variable;

//案例: 演示成员变量和局部变量的区别.
/*
    概述:
        成员变量: 定义在类中, 方法外的变量.
        局部变量: 定义在方法中, 或者方法声明上的变量.
    区别:
        1. 定义位置不同.
             成员变量: 定义在类中, 方法外的变量.
             局部变量: 定义在方法中, 或者方法声明上的变量.
        2. 在内存中的存储位置不同.
             成员变量:  存储在堆内存.
             局部变量:  存储在栈内存.
        3. 生命周期不同.
            成员变量: 随着对象的创建而存在, 随着对象的消失而消失.
            局部变量: 随着方法的调用而存在, 随着方法的调用完毕而消失.
        4. 初始化值不同.
            成员变量: 有默认值.
                例如:
                    String:   null
                    int:      0
                    double:   0.0
            局部变量: 没有默认值, 必须先定义, 再赋值, 然后才能使用.
 */
public class VariableDemo {
    //成员变量
    int x;

    public void show() {
        //局部变量
        //int y;            //这样写会报错, 因为局部变量没有默认值.
        int y = 20;
        System.out.println(x);      //10
        System.out.println(y);      //20
    }
}
